SELECT CO.CODICE_CONTRATTO,
co.codice_utente,
pu.codice_persona codice_utilizzatore,
pe.codice_persona codice_titolare,
Pu.NOMINATIVO_RAG_SOC utilizzatore,
pu.CODICE_FISCALE "cdf utilizzatore",
to_char(pu.PARTITA_IVA) "PIVA UTILIZZATORE",
PE.NOMINATIVO_RAG_SOC,
CONCAT(CONCAT('IT018E',SUBSTR(CONCAT('0000000000',FO.CODICE_ALLACCIAMENTO),-7,7)),SUBSTR(FO.PROGRESSIVO_UTENZA,-1,1)) POD,
indirizzi.TOPONIMO_VIA, indirizzi.PREFISSO_VIA,indirizzi.DENOMINAZIONE_VIA,indirizzi.CIVICO,indirizzi.ESTENSIONE_CIVICO,indirizzi.COMUNE,
ut.MATRICOLA_CONTATORE_1 matricola_misuratore,
UT.TENSIONE_PREVISTA TENSIONE,
CO.POTENZA_IMPEGNATA,CO.POTENZA_TOLLERATA,GR.OPZIONE_TAR,
UT.CODICE_MODELLO_CONTATORE_1 MODELLO_CONTATORE,
CO.CODICE_TIPO_USO,
CO.CODICE_TARIFFA, 
CO.CODICE_USO,
GR.RAGGRUPP_RIEPFATT,
CO.STATO_CONTRATTO,
to_char(CO.DATA_STIPULAZIONE),
to_char(CO.DATA_CHIUSURA) data_chiusura,
co.CODICE_GRUPPO_BOLLETTAZIONE,
av2.codice_voce,
 av2.data_inizio_bonus,
av2.data_fine_bonus 
FROM CONTRATTI CO,GRUPPI GR,FORNITURE FO,CONTRATTI_AGGREGAZIONI CA,PERSONE PE,UTENZE UT,persone pu,allacciamenti,indirizzi,

    (select at.codice_utente,
    to_char(at.data_fine_addebito) data_fine_bonus,
    to_char(at.DATA_INIZIO_ADDEBITO) data_inizio_bonus,
    av1.codice_voce
        from db1.addebiti_tariffazione at,
         (select distinct max(av.progressivo_voce) progressivo_voce,av.codice_utente,av.CODICE_VOCE  from db1.addebiti_voci av
          where av.codice_gestione = 'UNRG' 
          and av.codice_voce in('BEX09','BEF')
          and av.CODICE_SERVIZIO ='E'
           and av.CODICE_SERVIZIO_L ='E'
         
          group by av.codice_utente,av.codice_voce) av1
          
where av1.codice_utente = at.codice_utente

and   av1.progressivo_voce = at.progressivo_voce
and   at.codice_gestione = 'UNRG'
and at.DATA_FINE_ADDEBITO <= TO_DATE(^DATA gg/mm/aaaa ;A;Alfanumerico^^,'dd/mm/yyyy')
and   at.codice_servizio = 'E') av2

WHERE CO.CODICE_GESTIONE  IN ('UNRG')
AND CO.CODICE_SERVIZIO = 'E'
AND CO.CODICE_TARIFFA = GR.CODICE_TARIFFA
AND CO.CODICE_TIPO_USO = GR.CODICE_TIPO_USO
AND CO.CODICE_USO = GR.CODICE_USO

AND CO.CODICE_GESTIONE = FO.CODICE_GESTIONE
AND CO.CODICE_SERVIZIO = FO.CODICE_SERVIZIO
AND CO.CODICE_CONTRATTO = FO.CODICE_CONTRATTO
AND CO.CODICE_GESTIONE = CA.CODICE_GESTIONE
AND CO.CODICE_UTENTE= CA.CODICE_UTENTE
AND PE.CODICE_PERSONA = CA.CODICE_PERSONA_TITOLARE

AND Pu.CODICE_PERSONA = CA.CODICE_PERSONA_UTILIZZATORE
AND CO.CODICE_GESTIONE = UT.CODICE_GESTIONE
AND CO.CODICE_SERVIZIO = UT.CODICE_SERVIZIO
AND FO.CODICE_ALLACCIAMENTO = UT.CODICE_ALLACCIAMENTO 
AND FO.PROGRESSIVO_UTENZA = UT.PROGRESSIVO_UTENZA
AND CO.DATA_STIPULAZIONE < TO_DATE(^DATA gg/mm/aaaa ;A;Alfanumerico;1^^,'dd/mm/yyyy')
AND (CO.STATO_CONTRATTO = 'A' or CO.DATA_CHIUSURA > TO_DATE(^DATA gg/mm/aaaa ;A;Alfanumerico;1^^,'dd/mm/yyyy'))
and av2.codice_utente(+) = co.codice_utente
and allacciamenti.CODICE_GESTIONE = 'UNRG'
and allacciamenti.CODICE_SERVIZIO ='E'
and allacciamenti.CODICE_ALLACCIAMENTO = fo.CODICE_ALLACCIAMENTO
and allacciamenti.CODICE_INDIRIZZO = indirizzi.CODICE_INDIRIZZO




